home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nebula 2
/
Nebula Two.iso
/
NextAnswers
/
PeopleDemo_sybase
/
Department.m
< prev
next >
Wrap
Text File
|
1994-06-23
|
2KB
|
129 lines
/* Department.m
* A simple enterprise object.
*
* You may freely copy, distribute, and reuse the code in this example.
* NeXT disclaims any warranty of any kind, expressed or implied, as to its
* fitness for any particular use.
*
* Written by Mai Nguyen, NeXT Developer Support
*/
#import "Department.h"
#import "strings.h"
@implementation Department
- init
{
/* You can add additional intialization here. */
[super init];
return self;
}
/* DEBUGGING METHODS */
- (BOOL)respondsTo:(SEL)sel
{
#ifdef DEBUG
fprintf(stderr, "RespondsTo: %s\n", sel_getName(sel));
#endif
return [super respondsTo:sel];
}
/* Accessor methods */
- (void) setDeptId:(NSNumber *)newId
{
[DeptId release];
DeptId = [newId retain];
}
- (void) setDepartmentName:(NSString *)newName
{
[DepartmentName release];
DepartmentName = [newName retain];
}
- (void) setLocationId:(NSNumber *)newLocation
{
[LocationId release];
LocationId = [newLocation retain];
}
- (NSArray *) toEmployee
{
return toEmployee;
}
- (void) setToEmployee:(NSArray *)aRelation
{
[toEmployee release];
toEmployee = [aRelation retain];
}
- (void) setAverageSalary:(NSNumber *)aSalary
{
[averageSalary release];
averageSalary = [aSalary retain];
}
- (NSNumber *)averageSalary
{
int i;
unsigned count = 0;
id anEmployee, value;
int totalSalaries = 0;
if (toEmployee) {
count = [toEmployee count];
totalSalaries = 0;
for (i = 0; i < count; i++) {
anEmployee = [toEmployee objectAtIndex:i];
value = [anEmployee objectForKey:@"Salary"];
/* skip Salary with Null values */
if (![value isEqual:[EONull null]])
totalSalaries += [[anEmployee objectForKey:@"Salary"] intValue];
}
}
if (count > 0)
avgSalaries = totalSalaries/count;
return [NSNumber numberWithInt:avgSalaries];
}
/* This method is just a place holder. Do not call [super dealloc].
* Do nothing.
*/
- (void)dealloc
{
}
- free
{
/* Free our ivars, and do all the normal cleanup... */
[DeptId release];
[DepartmentName release];
[LocationId release];
[FacilityLocation release];
[toEmployee release];
[averageSalary release];
/* Send ourselves a dealloc message so we will be removed
*from the uniquing tables.
*/
[self dealloc];
return [super free];
}
@end